
	var callid=1;//用来测试用的callid，到时要煮掉
	/*----------------------------话务管理------------------------------*/
//获得通话的秒数, 在通话事件Established事件触发时生成的<p>标记中加入span子标签，放已经通话的时间
		setInterval(function(){
		   		$("p").each(function()
   				{
   			//	 $(this).text(parseInt($(this).text())+1);
		   		var second = $(this).children("span").eq(1);
		   		var time = parseInt(second.text())+1;			//获取秒数
		   		if(time==60)
		   		{
		   			var minute =	$(this).children("span").eq(0);			//分钟	
		   			minute.text(parseInt(minute.text())+1);
		   			second.text(0);
		   		}
		   		else
		   		{
		   			second.text(parseInt(second.text())+1);
		   		}
   				});	
   			}, 1000); 

	function Originated(callid,caller,called,reason,localstate,data)
	{
	 
	}
	function Delivered(callid,caller,called,alerting,reason,state,data)
	{
	
	}
	//建立了通话所触发的事件函数
	function Established(callid,caller,called,answer,reason,localstate,data)
	{
		//如果是接服人员则打入来的通话都应录音(called=本地设备id)		
		//记录通话日志		
		//通话日志记录成功		
		var flag =agentRpc.getCallState(agentId).callFlag;			//获取通话标志
	//	alert("callFlag: "+flag);
		var localNumber = agentRpc.getCallState(agentId).localDeviceId;		//从后台获取本地设备号码	
	//	alert("localDeviceId: "+localNumber);
		if((localNumber == called && caller!=called)||flag==0)		//证明是外线打进来,或者是两方通话
		{
			agentRpc.establishCall(callid,caller,called,agentId);		//通知后台建立了双方通话
			if(localNumber == called && caller!=called)					//外线打进来
			{
				$("<p>已经和"+caller+"建立通话 <span>0</span>:<span>0</span></p>").appendTo("#msgdialog");
				$("#msgdialog").dialog("open");
			}
			else $("#"+called).text($("#"+called).attr("name")+"已经建立通话  ").append("<span>0</span>").append(": ").append("<span>0</span>");
		}
		else
   		$("#"+called).text($("#"+called).attr("name")+"已经建立通话  ").append("<span>0</span>").append(": ").append("<span>0</span>");
	}

	function makeCall(called)		//对外呼叫的函数
	{
		
		//先获取主叫和被叫设备的Id，再执行以下代码
	/*	if(called.length>0){
			
			var caller=RTsapiBar.LocalAddress;		//本地设备id
    		var ret=RTsapiBar.MakeCall(caller,called,"",0,"");			//param1:主叫显示号码，param2:被叫设备id，param3:呼叫名称，param4:呼叫类型,param5:随路数据格式
    		
		}
		*/
		var caller = agentId// agentRpc.getCallState(agentId).localDeviceId;		//获取本地设备号码
	//	alert("makeCall中的本地设备号码："+caller);
    		Established(callid,caller,called,"","","","");
    		var msg = "callid="+callid+";deviceid="+caller+";file="+new Date().toTimeString()+".pcm";
    		PrivateMsg(10008,msg);
    	callid=callid+1;
	}

    /*--------------------------------------------会议--------------------------------------*/
    //召开会议	参数：devs　会议成员号码列表，用逗号分隔，比如：8001,8002,8003
    //事件：Delivered、Established、TransferConference、TransferToConference
    function AddMultiParty(devs)
    {
    	
   // 	var ret=RTsapiBar.AddMultiParty(devs);   	
    	var dev = devs.split(",");
    	var caller =agentId// agentRpc.getCallState(agentId).localDeviceId;		//获取本地设备号码
    	for(var i=0;i<dev.length;i++)
    	{
    		
    		Established(callid,caller,dev[i],"","","","");//测试用，真实情况需要注释此代码，因为事件我们只能监听，不能调用
    		TransferToConference(caller,dev[i],callid,callid);
    		//模拟收到私有消息
    		var msg = "callid="+callid+";deviceid="+caller+";file="+new Date().toTimeString()+".pcm";
    		if(i==dev.length-1) {PrivateMsg(10008,msg);}
    		
    	}
    	callid=callid+1;
    }			
	function PrivateMsg(eventid,msg)			//收到私有信息
	{
	
		if(eventid==10008)						//录音
		{
			var a = msg.split(";");
			var filename = a[2].split("=")[1];
			//alert(filename);
			agentRpc.receiveFilename(agentId,filename);					//后台获取收到的录音文件
		}
	}
    /*
     * 参数：
		calling      字符串  执行操作设备ID
		user        字符串  被转入会议的设备ID
		callid       整型    执行操作呼叫ID
		otherCallid   整型    被转的呼叫ID
     */
    function TransferConference(calling,user,callid,otherCallid)
    {
    	
    }
    //某方加入了电话会议
    function TransferToConference(calling,user,callid,otherCallid)
    {
    	
			agentRpc.transferConference(calling,user,otherCallid,agentId);
		
   	//	$("#"+user).text($("#"+user).attr("name")+"已经建立通话  ").append("<span>0</span>").append(": ").append("<span>0</span>");
    }

   	//形成电话会议事件触发后的函数
	function Conferenced(oldcallid,newcallid,adddeviceid,reason,localstate,data)
	{
	//	$.cookie("callId",newcallid);
	}
    //插入通话形成电话会议(坐席班长的强插功能)	参数：(被插入设备ID,随路数据格式) 	事件：Conferenced
    function InsertCall(deviceid,data){
		if(deviceid.length>0)
		{
    		var ret=RTsapiBar.InsertCall(deviceid,data);
    	}
    }
    /*--------------------------------------------会议--------------------------------------*/

    //表示话路已被转向到另外一方
    function Diverted(callid,caller,called,dest,reason,localstate,data)
    {
    	
    }

    /*-------------------------------拆除呼叫和拆除连接--------------------------------------*/

    //拆除呼叫(被拆除的呼叫id，设备id,随路数据格式)	事件：CallCleared
    function ClearCall(callid,deviceid){  
    	if(callid.length>0){
		   	var ret=-1;
		   	if(deviceid.length>0)
    	    	ret=RTsapiBar.ClearCall(parseInt(callid),deviceid,"");
 		   	else 
 		   		ret=RTsapiBar.ClearCall(parseInt(callid),"","");  	
		   	return ret;
    	}	
    }
	//拆除呼叫的事件函数
	function CallCleared(callid,deviceid,reason,localstate,data)		//要保持通话
	{
		agentRpc.endCall(agentId);			//拆除呼叫
	}
    //拆除连接(呼叫id，设备id,随路数据格式)	事件：ConnectionCleared
    function ClearCon(callid,deviceid ){
    
		if(callid.length>0 &&deviceid.length>0)
    	{
    		var ret=RTsapiBar.ClearConnection(parseInt(callid),deviceid,"");		
    		//ConnectionCleared事件会触发，下面的函数会触发
    
    	}
    }

	//表示某一方被从呼叫中清除
	function ConnectionCleared(callid,deviceid,reason,localstate,data)
	{
		//从cookie中删除目的设备id
		
	}
	
 /*-------------------------------拆除呼叫和拆除连接--------------------------------------*/
	
	//表示呼叫失败
	function Failed(callid,caller,called,failed,reason,localstate,data)
    {
    	return reason;
    }  
	/*----------------------------话务管理------------------------------*/
